package com.demo.lua;

import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.jse.JsePlatform;

/**
 * Luaj 是一个 Java 的 Lua 解释器
 * 这个demo演示的是用java版本的lua解释器执行lua角本，lua在redis中执行需要通过jedis或者spring data redis
 */
public class LuaJDemo {
    public static void main(String[] args) throws Exception {
        Globals globals = JsePlatform.standardGlobals();
        // 通过绝对路径加载lua文件
        // TODO 使用相对路径没有成功
        LuaValue chunk = globals.loadfile("/Users/sunchuanfu/IdeaProjects/redis/src/main/java/com/demo/lua/hello.lua");
        // 直接执行lua角本
        // LuaValue chunk = globals.load("print 'hello, world'");
        System.out.println(chunk);
        LuaValue luaValue = chunk.call(chunk);
        // LuaValue luaValue = chunk.call(LuaValue.valueOf("print 'hello, world'"));
        System.out.println(luaValue);
    }
}
